package com.wanqing.community.dao;

import java.util.List;
import java.util.Map;

import com.wanqing.community.bean.MenuBean;
import com.wanqing.community.util.ConditionParse;

/**
 * 菜单管理DAO接口
 * Copyright 2014
 * All right reserved.
 * @version 
 * Company
 */
public interface MenuDao {

	/**
	 * <p>Description:根据查询条件查询菜单列表<p>
	 * <p>modifiContent:</p>
	 * @param condParse
	 * @return
	 */
	List<MenuBean> queryMenu(ConditionParse condParse);
	
	/**
	 * <p>Description:根据条件得到菜单的数量<p>
	 * <p>modifiContent:</p>
	 * @param condParse
	 * @return
	 */
	int getMenuCount(ConditionParse condParse);
	
	/**
	 * <p>Description:修改菜单的是否为根<p>
	 * <p>modifiContent:<p>
	 * @param mleaf
	 * @param id
	 * @return
	 */
	int updateMenuLeaf(boolean mleaf,String id);
	
	/**
	 * <p>Description:添加菜单<p>
	 * <p>modifiContent:<p>
	 * @param menuBean
	 * @return
	 */
	int addMenu(MenuBean menuBean);
	
	/**
	 * <p>Description:查询所有的菜单信息<p>
	 * <p>modifiContent:<p>
	 * @return
	 */
	List<MenuBean> listMenu();
	
	/**
	 * <p>Description:查询权限菜单<p>
	 * <p>modifiContent:<p>
	 * @param paramsMap
	 * @return
	 */
	List<MenuBean> queryMenuAcl(ConditionParse condParse);
	
	
	List<MenuBean> queryAclMenuAndOper(Map<String, Object> paramsMap);
	
	/**
	 * <p>Description:通过ID查找菜单信息<p>
	 * <p>modifiContent:<p>
	 * @param id
	 * @return
	 */
	MenuBean findMenuById(String id);
	
	/**
	 * <p>Description:分页查询菜单信息<p>
	 * <p>modifiContent:<p>
	 * @param condParse
	 * @param currPage
	 * @param pageSize
	 * @return
	 */
	List<MenuBean> queryMenu(ConditionParse condParse, int currPage,int pageSize);
	
	/**
	 * <p>Description:删除菜单<p>
	 * <p>modifiContent:<p>
	 * @param list
	 * @return
	 */
	int deleteMenu(List<String> list);
	
	/**
	 * <p>Description:修改菜单<p>
	 * <p>modifiContent:<p>
	 * @param menu
	 * @return
	 */
	int updateMenu(MenuBean menu);
	
	/**
	 * <p>Description:查询所有的菜单以及对应的按钮，业务功能<p>
	 * <p>modifiContent:<p>
	 * @return
	 */
	List<MenuBean> listAuthorMenu();
}
